home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / edit / jed096_1.zip / SLANG / CHANGES.TXT next >
Text File  |  1994-04-26  |  3KB  |  93 lines

  1. changes since 0.98:
  2. *  matrix package added.  Currently only matrix multiplication and addition
  3.    is supported.  More functions will be added (determinants, inverse, etc..)
  4.    This support is provided by the `init_SLmatrix ()' call.  This support 
  5.    provides the following S-Lang intrinsics:
  6.    
  7.          matrix_multiply, matrix_add
  8.       
  9.    
  10. *  New S-Lang core intrinsic:
  11.  
  12.          copy_array  :  copys the contents of one array to another
  13.  
  14. changes since 0.97:
  15.  
  16. *  Double precision floating point supported.  
  17.    Use the -DFLOAT_TYPE -DUSE_DOUBLE compiler flags to enable this.
  18.    Note that S-Lang does not support single precision and double precision
  19.    floating point number SIMULTANEOUSLY.  You must choose one or the other
  20.    and stick with it!
  21.    
  22. *  Byte compiling is now more than simple preprocessing.  This results in
  23.    about a 20% decrease in loading time.  This also means that if you
  24.    rebuild your application, you MUST re-bytecompile.
  25.    
  26. *  New syntax added:  Consider a function f that returns multiple values.
  27.    Then to assign these values to, say var_1, and var_2, simply write:
  28.    
  29.        (var_1, var_2) = f ();
  30.        
  31.     This is an alternative to:  
  32.     
  33.         f (); =var_2; =var_1;
  34.     
  35. Changes since 0.96:
  36.  
  37.   It is now possible to use short circuit boolean evaluation of logical
  38.   expressions is the `orelse' and `andelse' constructs.  Previously, these
  39.   constructs were only available at the infix level.  The new syntax looks
  40.   like (example taken from JED's rmail.sl):
  41.   
  42.      if (orelse 
  43.      {re_bsearch("^\\CFrom:.*<\\(.+\\)>");}
  44.      {re_bsearch("^\\CReply-To: *\\([^ ]+\\) *");}
  45.      {re_bsearch("^\\CFrom:.*<\\(.+\\)>");}
  46.      {re_bsearch("^\\CFrom: *\\([^ ]+\\) *");}
  47.      {re_bsearch("^\\cFrom +\\([^ ]+\\) *");}
  48.        )
  49.      {
  50.     from = rmail_complex_get_from(from);
  51.      }
  52.      
  53.  
  54.   Modified some of the array code to use handles to arrays instead of actual
  55.   arrays.  This adds alot more protection for the use of arrays.  The
  56.   downside is that there is a limit on the number of active arrays.  This
  57.   limit has been set to a default value ot 256.  An ``active'' array is an
  58.   array that has been created but not freed.
  59.   
  60.   Fixed a parse error that occurred when an `if' statement imediately follow
  61.   the `:' in a switch statement.
  62.   
  63.   putenv intrinsic added.
  64.  
  65.   EXIT_BLOCK:  if an exit block is declared, it is called just before the
  66.                function returns to its caller. 
  67.  
  68. It is now possible to perform assignments in variable declaration
  69. statements, e.g.,
  70.  
  71. variable i = 0, imax = 10, n = strlen (name);
  72.  
  73. Condition compilation of S-Lang source possible.  See .sl files in the jed
  74. distribution.
  75.  
  76. A bug which prevent assignment to a global C floating point variable was
  77. fixed. 
  78.  
  79. Changes to `calc':
  80.  
  81.    `apropos' function added to calc.sl.  For example, `apropos("str")'
  82.       creates a list of all intrinsic functions that contain the substring
  83.       "str"  (strcmp, strcat, etc...)
  84.       
  85.     Command line arguments are now loaded as S-Lang source files.  This makes
  86.       it possible to create a Unix executable such as:
  87.       
  88.          #! /usr/local/bin/calc
  89.      
  90.      define hello_world () { print ("hello world"); }
  91.      loop (10) hello_world ();
  92.      quit ();
  93.